package com.stock.mybatisplus.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.io.Serializable;
import java.time.LocalDateTime;

public class BaseEntity <T extends Model<T>> extends Model<T> {
    private static final long serialVersionUID = 1L;
    /** 系统id */
    @TableId(type = IdType.ASSIGN_ID)
    public String id;

    /** 创建人 */
    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private Long createBy;

    /** 创建时间 */
    @TableField(value = "create_date", fill = FieldFill.INSERT)
    private LocalDateTime createDate;

    /** 更新人 */
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private Long updateBy;

    /** 更新时间 */
    @TableField(value = "update_date", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateDate;

    /** 状态 0正常 1删除 */
    @TableLogic(value = "0", delval = "1")
    @TableField(value = "status", fill = FieldFill.INSERT)
    public Integer status;

    /** 商户编码 */
    @TableField(value = "company_code", fill = FieldFill.INSERT)
    private String companyCode;

    /** 数据版本号 */
    @Version
    @TableField(fill = FieldFill.INSERT)
    private Integer version;

    @Override
    public Serializable pkVal() {
        return this.id;
    }

    /**
     * id
     */
    public String getId() {
        return id;
    }

    /**
     * id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 创建人
     */
    public Long getCreateBy() {
        return createBy;
    }

    /**
     * 创建人
     */
    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
    }

    /**
     * 创建时间
     */
    public LocalDateTime getCreateDate() {
        return createDate;
    }

    /**
     * 创建时间
     */
    public void setCreateDate(LocalDateTime createDate) {
        this.createDate = createDate;
    }

    /**
     * 更新人
     */
    public Long getUpdateBy() {
        return updateBy;
    }

    /**
     * 更新人
     */
    public void setUpdateBy(Long updateBy) {
        this.updateBy = updateBy;
    }

    /**
     * 更新时间
     */
    public LocalDateTime getUpdateDate() {
        return updateDate;
    }

    /**
     * 更新时间
     */
    public void setUpdateDate(LocalDateTime updateDate) {
        this.updateDate = updateDate;
    }

    /** 状态 0正常 1删除 */
    public Integer getStatus() {
        return status;
    }

    /** 状态 0正常 1删除 */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /** 商户编码 */
    public String getCompanyCode() {
        return companyCode;
    }

    /** 商户编码 */
    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }

    /** 数据版本号 */
    public Integer getVersion() {
        return version;
    }

    /** 数据版本号 */
    public void setVersion(Integer version) {
        this.version = version;
    }
}
